package com.service.impl;

import com.dao.UserDao;
import com.dao.impl.UserDaoimpl;
import com.domain.User;
import com.service.UserService;
import com.utils.DataUtils;
import com.utils.UUIDUtils;

import java.util.List;

public class UserServiceimol implements UserService {
    //把调dao的方法放到成员变量位置
    //使用prvate方法,将dao私有化
    private UserDao userDao = new UserDaoimpl();

    //查看逻辑
    @Override
    public List<User> selctAll() {
        return userDao.selctAll();
    }

    //添加逻辑
    @Override
    public void addAll(User user) {
        //添加数据的时候,没有添加id,要在这里调用工具类,写到集合中
        user.setId(UUIDUtils.getId());
        //获取所有对象集合
        List<User> users = userDao.selctAll();
        users.add(user);
        //把数据放到文件中
        userDao.writeAll(users);
    }

    //根据ID获取数据
    @Override
    public User getByID(String id) {
        List<User> users = userDao.selctAll();
        for (User user : users) {
            if (id.equals(user.getId())) {
                return user;
            }
        }
        return null;
    }

    @Override
    public void update(User use) {
        List<User> users = userDao.selctAll();
        for (User user : users) {
            if (use.getId().equals(user.getId())) {
                //把以前的删除
                users.remove(user);
                //把新添加的放进来
                users.add(use);
                //防止并发修改异常
                break;
            }
        }
        userDao.writeAll(users);
    }

    //删除方法
    @Override
    public void delete(String id) {
        List<User> users = userDao.selctAll();
        for (User user : users) {
            if (user.getId().equals(id)) {
                users.remove(user);
                break;
            }
        }
        userDao.writeAll(users);
    }

    @Override
    public boolean checkname(String username) {
        List<User> users = userDao.selctAll();
        for (User user : users) {
            if (user.getName().equals(username)){
                return false;
            }
        }
        return true;
    }
}
